home *** CD-ROM | disk | FTP | other *** search
/ Winzipper / Winzipper_ISO.iso / nt4.0 server / DRVLIB.NIC / OCE3XM / OEMSETUP.INF < prev   
INI File  |  1996-07-31  |  44KB  |  1,335 lines

  1. ;***********************************************************************
  2. ;
  3. ; OEMSETUP.INF
  4. ;
  5. ;    Olicom MCA/ISA Ethernet 10/100 Adapter Driver Setup File.
  6. ;
  7. ;***********************************************************************
  8.  
  9. ;-----------------------------------------------------------------------
  10. ; OPTION TYPE
  11. ; -----------
  12. ; This identifies the Option type we are dealing with.    The different
  13. ; possible types are:
  14. ;
  15. ; COMPUTER, DISPLAY, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ...
  16. ;
  17. ;  Types specific to networking:
  18. ;
  19. ; NetAdapter,         a netcard / adapter combination or just a netcard
  20. ; NetDriver,         just a netcard driver
  21. ; NetTransport,      a complete NDIS-compliant TDI transport stack
  22. ; NetService,         an NT networking service
  23. ; NetWork,         a complete network ensemble.
  24. ; NetProvider         a complete network which supports NT MPR protocol
  25. ;-----------------------------------------------------------------------
  26.  
  27. [Identification]
  28.     OptionType = NetAdapter
  29.  
  30. ;-----------------------------------------------------------------------
  31. ; PlatformsSupported
  32. ; ------------------
  33. ; This identifies the platforms supported by the adapter card.
  34. ; Possible types are:
  35. ;
  36. ; ISA and EISA
  37. ;-----------------------------------------------------------------------
  38.  
  39. [PlatformsSupported]
  40.     ISA
  41.     EISA
  42.     MCA
  43.  
  44. [LanguagesSupported]
  45.     ENG
  46.  
  47. ;-----------------------------------------------------------------------
  48. ; OPTION LIST
  49. ; -----------
  50. ; This section lists the OEM Option key names.    These keys are locale
  51. ; independent and used to represent the option in a locale independent
  52. ; manner.
  53. ;
  54. ;-----------------------------------------------------------------------
  55.  
  56. [Options]
  57.     OCE3XM
  58. ;    OCE3XMMC
  59.  
  60. [OptionsTextENG]
  61.     OCE3XM    = "Olicom Ethernet ISA 10/100 Adapter"
  62. ;    OCE3XMMC  = "Olicom Ethernet MCA 10/100 Adapter"
  63.  
  64. [IOBaseAddrChoices]
  65. IOBase_1  = "Auto detect",0
  66. IOBase_2  = "200h",512
  67. IOBase_3  = "210h",528
  68. IOBase_4  = "220h",544
  69. IOBase_5  = "230h",560
  70. IOBase_6  = "240h",576
  71. IOBase_7  = "250h",592
  72. IOBase_8  = "260h",608
  73. IOBase_9  = "270h",624
  74. IOBase_10 = "280h",640
  75. IOBase_11 = "290h",656
  76. IOBase_12 = "2A0h",672
  77. IOBase_13 = "2B0h",698
  78. IOBase_14 = "2C0h",714
  79. IOBase_15 = "2D0h",730
  80. IOBase_16 = "2E0h",746
  81. IOBase_17 = "2F0h",752
  82. IOBase_18 = "300h",768
  83. IOBase_19 = "310h",784
  84. IOBase_20 = "320h",800
  85. IOBase_21 = "330h",816
  86. IOBase_22 = "340h",832
  87. IOBase_23 = "350h",848
  88. IOBase_24 = "360h",864
  89. IOBase_25 = "370h",880
  90. IOBase_26 = "380h",896
  91. IOBase_27 = "390h",912
  92. IOBase_28 = "3A0h",928
  93. IOBase_29 = "3B0h",944
  94. IOBase_30 = "3C0h",960
  95. IOBase_31 = "3D0h",976
  96. IOBase_30 = "3E0h",992
  97.  
  98. [BusNumberChoices]
  99. BusNo_1 = "0",0
  100. BusNo_2 = "1",1
  101. BusNo_3 = "2",2
  102. BusNo_4 = "3",3
  103. BusNo_5 = "4",4
  104. BusNo_6 = "5",5
  105. BusNo_7 = "6",6
  106. BusNo_8 = "7",7
  107.  
  108. [SpeedChoices]
  109. Speed_1 = 1,0,"&Auto"
  110. Speed_2 = 2,10,"1&0 Mbps"
  111. Speed_3 = 3,100,"&100 Mbps"
  112.  
  113. ;-----------------------------------------------------------------------
  114. ; Constants for use with dialogs
  115. ;-----------------------------------------------------------------------
  116.  
  117. [FileConstants]
  118. AdapterServiceName = ""
  119. UtilityInf      = "UTILITY.INF"
  120. subroutineinf    = "SUBROUTN.INF"
  121. SoftwareType    = "driver"
  122. Exit_Code    = 0
  123. DialogDllName    = "oce3xm.dll"
  124. HelpfileName    = "oce3xm.hlp"
  125. NetEventDLL    = "%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\Drivers\Oc2xem.sys"
  126. IoLogMsgDLL    = "%SystemRoot%\System32\IoLogMsg.dll"
  127. OC2335_1BYTE    = 71
  128. OC2335_2BYTE    = 100
  129. NETCARD_ID    = 25671
  130. Manufacturer    = "Olicom"
  131. ProductMajorVersion    = "3"
  132. ProductMinorVersion    = "0"
  133. ProductVersion        = $(ProductMajorVersion)"."$(ProductMinorVersion)
  134. ProductSoftwareName    = "OCE3XM"
  135. ProductSoftwareTitle        = "Olicom Ethernet MCA/ISA 10/100 Adapter Driver"
  136. ProductSoftwareDescription  = "Olicom Ethernet MCA/ISA 10/100 Adapter Driver"
  137. ProductSoftwareImagePath    = "\SystemRoot\System32\drivers\oce3xm.sys"
  138. NetRuleSoftwareType    = "oce3xmSys ndisDriver oce3xmDriver"
  139. NetRuleSoftwareUse    = $(SoftwareType)
  140. NetRuleSoftwareBindForm = """Oce3xMSys"" yes no container"
  141. NetRuleSoftwareClass    = {"oce3xmDriver basic"}
  142. NetRuleSoftwareBindable = {"oce3xmDriver oce3xmAdapter non exclusive 100"}
  143. ProductHardwareName    = "OCE3XM"
  144. ProductHardwareOCE3XMTitle        = "Olicom Ethernet ISA 10/100 Adapter"
  145. ProductHardwareOCE3XMMCTitle        = "Olicom Ethernet MCA 10/100 Adapter"
  146. ProductHardwareTitle            = $(ProductHardware$(Option)Title)
  147. ProductHardwareOCE3XMDescription    = "Olicom Ethernet ISA 10/100 Adapter"
  148. ProductHardwareOCE3XMMCDescription  = "Olicom Ethernet MCA 10/100 Adapter"
  149. ProductHardwareDescription        = $(ProductHardware$(Option)Description)
  150. NetRuleHardwareType    = "oce3xm oce3xmAdapter"
  151. NetRuleHardwareBindForm = " yes yes container"
  152. NetRuleHardwareClass    = {"oce3xmAdapter basic"}
  153. ProductKeyName    = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  154. ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  155.  
  156. [GeneralConstants]
  157. from      = ""
  158. to      = ""
  159. ExitCodeOk     = 0
  160. ExitCodeCancel = 1
  161. ExitCodeFatal  = 2
  162. KeyNull     = ""
  163. MAXIMUM_ALLOWED   = 33554432
  164. RegistryErrorIndex = NO_ERROR
  165. KeyProduct    = ""
  166. KeyParameters    = ""
  167. TRUE        = 1
  168. FALSE        = 0
  169. NoTitle     = 0
  170. ExitState    = "Active"
  171. OldVersionExisted = $(FALSE)
  172. DriverPath    = $(!STF_NTPATH)\drivers
  173. [FileConstantsENG]
  174. ProCaption   = "Windows NT Setup"
  175. ProCancel    = "Cancel"
  176. ProCancelMsg = "Windows NT Networking is not correctly installed.  "+
  177.            "Are you sure you want to cancel copying files?"
  178. ProCancelCap = "Network Setup Message"
  179. ProText1     = "Copying:"
  180. ProText2     = "To:"
  181. CANNOT_FIND_ANY_CARD   = "Network card is not present in the system"
  182. OCE3XMFunctionTitle    = "Olicom Ethernet ISA 10/100 Adapter Setup"
  183. OCE3XMMCFunctionTitle  = "Olicom Ethernet MCA 10/100 Adapter Setup"
  184. FunctionTitle    = $($(Option)FunctionTitle)
  185.  
  186. IOBaseAddrList = ^(IOBaseAddrChoices, 1)
  187. IOBaseAddrValues = ^(IOBaseAddrChoices, 2)
  188. BusNoList = ^(BusNumberChoices, 1)
  189. BusNoValues = ^(BusNumberChoices, 2)
  190. SpeedList = ^(SpeedChoices, 1)
  191. SpeedValues = ^(SpeedChoices, 2)
  192. SpeedLabels = ^(SpeedChoices, 3)
  193.  
  194. IOBaseDefault        = 1
  195. BusNoDefault        = 1
  196. SpeedDefault        = 1
  197. DuplexDefault        = 4
  198.  
  199. [DialogConstantsENG]
  200. Help        = "&Help"
  201. Exit        = "Cancel"
  202. OK        = "OK"
  203. HelpContext = ""
  204. Continue    = "Continue"
  205. Cancel        = "Cancel"
  206. ContextMinimumID    = 6000
  207. ContextContentsID    = 6000
  208. ContextMaximumID    = 6020
  209.  
  210. [date]
  211.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  212.  
  213. [AskSourceDlgText]
  214.     OCE3XMDlgText   = "Please enter the full path of the Olicom Ethernet ISA 10/100 "+
  215.               "Adapter driver setup files. Then choose Continue."
  216.     OCE3XMMCDlgText = "Please enter the full path of the Olicom Ethernet MCA 10/100 "+
  217.               "Adapter driver setup files. Then choose Continue."
  218.     DlgText        = $($(Option)DlgText)
  219.  
  220. ;-----------------------------------------------------------------------
  221. ; ADAPTER PARAMETER DIALOG (ISA)
  222. ; ------------------------------
  223. ; This section sets up the adapter parameter dialog. All textstrings
  224. ; presented in this dialog are defined here.
  225. ;
  226. ;-----------------------------------------------------------------------
  227.  
  228. [AdapterParameterDlgENG]
  229. DlgType = "RadioCombination"
  230. DlgTemplate = "OCE3DLG"
  231. Caption = $(FunctionTitle)
  232. DlgText = "Please select values for the following fields:"
  233. Combo1Label = "&I/O Base Address:"
  234. Combo2Label = "&Bus Number:"
  235. Radio1Label = "&Speed"
  236. Radio1 = *($(SpeedLabels),1)
  237. Radio2 = *($(SpeedLabels),2)
  238. Radio3 = *($(SpeedLabels),3)
  239. Radio2Label = "&Duplex"
  240. Radio4 = "A&uto"
  241. Radio5 = "Ha&lf"
  242. Radio6 = "&Full"
  243. Edit1Label = "&Network Address:"
  244. Combo1List = $(IOBaseAddrList)
  245. Combo1Out  = $(IOBaseAddrIndex)
  246. Combo2List = $(BusNoList)
  247. Combo2Out  = $(BusNoIndex)
  248. ComboListItemsIn  = {Combo1List, Combo2List}
  249. ComboListItemsOut = {Combo1Out, Combo2Out}
  250. EditTextLim = 17
  251. EditTextIn = $(NetworkAddress)
  252. RadioOptionGreyed = {}
  253. CBOptionsGreyed = {}
  254. NotifyFields = {NO, NO, NO, NO, NO}
  255. HelpContext = $(ContextContentsID)
  256.  
  257. ;-----------------------------------------------------------------------
  258. ; ADAPTER PARAMETER DIALOG (MCA)
  259. ; ------------------------------
  260. ; This section sets up the adapter parameter dialog. All textstrings
  261. ; presented in this dialog are defined here.
  262. ;
  263. ;-----------------------------------------------------------------------
  264.  
  265. [AdapterMCAParameterDlgENG]
  266. DlgType = "RadioCombination"
  267. DlgTemplate = "OCE3DLGMC"
  268. Caption = $(FunctionTitle)
  269. DlgText = "Please select values for the following fields:"
  270. Combo1Label = "&I/O Base Address:"
  271. Combo2Label = "&Bus Number:"
  272. Radio1Label = "&Speed"
  273. Radio1 = *($(SpeedLabels),1)
  274. Radio2 = *($(SpeedLabels),2)
  275. Radio3 = *($(SpeedLabels),3)
  276. Radio2Label = "&Duplex"
  277. Radio4 = "A&uto"
  278. Radio5 = "Ha&lf"
  279. Radio6 = "&Full"
  280. Edit1Label = "&Network Address:"
  281. Combo1List = $(IOBaseAddrList)
  282. Combo1Out  = $(IOBaseAddrIndex)
  283. Combo2List = $(BusNoList)
  284. Combo2Out  = $(BusNoIndex)
  285. ComboListItemsIn  = {Combo1List, Combo2List}
  286. ComboListItemsOut = {Combo1Out, Combo2Out}
  287. EditTextLim = 17
  288. EditTextIn = $(NetworkAddress)
  289. RadioOptionGreyed = {}
  290. CBOptionsGreyed = {}
  291. NotifyFields = {NO, NO, NO, NO, NO}
  292. HelpContext = $(ContextContentsID)
  293.  
  294. ;---------------------------------------------------------------------------
  295. ; 1. Identify
  296. ;
  297. ; DESCRIPTION:     To verify that this INF deals with the same type of options
  298. ;         as we are choosing currently.
  299. ;
  300. ; INPUT:     None
  301. ;
  302. ; OUTPUT:     $($R0): STATUS: STATUS_SUCCESSFUL
  303. ;         $($R1): Option Type (COMPUTER ...)
  304. ;         $($R2): Diskette description
  305. ;---------------------------------------------------------------------------
  306.  
  307. [Identify]
  308.     read-syms Identification
  309.     set Status       = STATUS_SUCCESSFUL
  310.     set Identifier = $(OptionType)
  311.     set Media       = #("Source Media Descriptions", 1, 1)
  312.     Return $(Status) $(Identifier) $(Media)
  313.  
  314. ;------------------------------------------------------------------------
  315. ; 2. ReturnOptions:
  316. ;
  317. ; DESCRIPTION:     To return the option list supported by this INF and the
  318. ;         localised text list representing the options.
  319. ;
  320. ;
  321. ; INPUT:     $($0):  Language used. ( ENG | FRN | ... )
  322. ;
  323. ; OUTPUT:     $($R0): STATUS: STATUS_SUCCESSFUL |
  324. ;                 STATUS_NOLANGUAGE
  325. ;                 STATUS_FAILED
  326. ;                 STATUS_NOTSUPPORTED
  327. ;
  328. ;         $($R1): Option List
  329. ;         $($R2): Option Text List
  330. ;------------------------------------------------------------------------
  331.  
  332. [ReturnOptions]
  333.     set Status           = STATUS_FAILED
  334.     set OptionList     = {}
  335.     set OptionTextList = {}
  336.     set LanguageList = ^(LanguagesSupported, 1)
  337.     Ifcontains(i) $($0) in $(LanguageList)
  338.     ifstr(i) $($1) == ""
  339.         goto returnoptions
  340.     endif
  341.     set PlatformList = ^(PlatformsSupported, 1)
  342.     Ifcontains(i) $($1) in $(PlatformList)
  343.         goto returnoptions
  344.     else
  345.         set Status = STATUS_NOTSUPPORTED
  346.         goto finish_ReturnOptions
  347.     endif
  348.     Else
  349.     set Status = STATUS_NOLANGUAGE
  350.     goto finish_ReturnOptions
  351.     Endif
  352. returnoptions = +
  353.     set OptionList     = ^(Options, 1)
  354.     set OptionTextList = ^(OptionsText$($0), 1)
  355.     set Status           = STATUS_SUCCESSFUL
  356. finish_ReturnOptions = +
  357.     Return $(Status) $(OptionList) $(OptionTextList)
  358.  
  359. ;------------------------------------------------------------------------
  360. ;
  361. ; InstallOption:
  362. ;
  363. ;      This section is shelled to by main installation processing
  364. ;      or by NCPASHEL.INF during reconfig, removal, update, etc.
  365. ;
  366. ;
  367. ; FUNCTION:  To copy files representing Options
  368. ;         To configure the installed option
  369. ;         To update the registry for the installed option
  370. ;
  371. ; INPUT:     $($0):  Language to use
  372. ;         $($1):  OptionID to install
  373. ;         $($2):  SourceDirectory
  374. ;         $($3):  AddCopy  (YES | NO)
  375. ;         $($4):  DoCopy   (YES | NO)
  376. ;         $($5):  DoConfig (YES | NO)
  377. ;
  378. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  379. ;                 STATUS_NOLANGUAGE |
  380. ;                 STATUS_USERCANCEL |
  381. ;                 STATUS_FAILED
  382. ;
  383. ;------------------------------------------------------------------------
  384.  
  385. [InstallOption]
  386.     StartWait
  387.     set Option     = $($1)
  388.     set SrcDir     = $($2)
  389.     set AddCopy  = $($3)
  390.     set DoCopy     = $($4)
  391.     set DoConfig = $($5)
  392.     set LanguageList = ^(LanguagesSupported, 1)
  393.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  394.     Return STATUS_NOLANGUAGE
  395.     endif
  396.     Debug-Output "STF_CWDDIR is: "$(!STF_CWDDIR)
  397.     Debug-Output "STF_LANGUAGE is: "$(!STF_LANGUAGE)
  398.     set-subst LF = "\n"
  399.     read-syms GeneralConstants
  400.     read-syms FileConstants
  401.     read-syms DialogConstants$(!STF_LANGUAGE)
  402.     ifstr(i) $(!NTN_Origination) == "NCPA"
  403.     set Continue = "OK"
  404.     endif
  405.     read-syms FileConstants$(!STF_LANGUAGE)
  406.     detect date
  407.     set-title  $(FunctionTitle)
  408.     set to   = Begin
  409.     set from = Begin
  410.     set CommonStatus = STATUS_SUCCESSFUL
  411.     SetHelpFile $(HelpfileName) $(ContextMinimumID) $(ContextMaximumID)
  412.     EndWait
  413. Begin = +
  414.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  415.     set StartLabel = removeadapter
  416.     else-Ifstr(i) $(!NTN_InstallMode) == Update
  417.     set StartLabel = UpgradeSoftware
  418.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  419.     set StartLabel = bindingadapter
  420.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  421.     set StartLabel = configureadapter
  422.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  423.         Debug-Output "Cannot configure the driver software."
  424.         Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
  425.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  426.         Debug-Output "ShellCode error: cannot get an error string."
  427.         goto ShellCodeError
  428.         endif
  429.         set Error = $($R0)
  430.         set from = end
  431.         set to = end
  432.         goto nonfatalinfo
  433.     endif
  434.     else
  435.     set StartLabel = installadapter
  436.     set OEM_ABANDON_OPTIONS = {}
  437.     set OEM_ABANDON_SOFTWARE = FALSE
  438.     set OEM_ABANDON_ON = TRUE
  439.     endif
  440.     set IOBaseAddrIndex = *($(IOBaseAddrList), $(IOBaseDefault))
  441.     set BusNoIndex = *($(BusNoList), $(BusNoDefault))
  442.     set SpeedIndex = *($(SpeedList), $(SpeedDefault))
  443.     set NetworkAddress = *($(EditTextOut), 1)
  444.     set RadioIn = { $(SpeedIndex), $(DuplexDefault) }
  445.     set Duplex = "Auto"
  446.     Shell "" DebugConfiguration "After parameter querying"
  447. ;    Shell $(UtilityInf), GetBusTypeNum
  448. ;    set BusTypeNum = $($R1)
  449. ;    ifint $($ShellCode) != $(!SHELL_CODE_OK)
  450. ;        Debug-Output "ShellCode error."
  451. ;        goto ShellCodeError
  452. ;    endif
  453.     Set from = $(fatal)
  454.     Set to = $(fatal)
  455.     Goto $(StartLabel)
  456.  
  457. ;-----------------------------------------------
  458. ; Installation Section
  459. ;-----------------------------------------------
  460. ;
  461. ;   Get the current values of all the parameters
  462. ;
  463. installadapter = +
  464.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  465.     Ifstr $(KeyProduct) != $(KeyNull)
  466.     CloseRegKey $(KeyProduct)
  467.     ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
  468.        Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
  469.            $(ProductVersion)
  470.        ifint $($ShellCode) != $(!SHELL_CODE_OK)
  471.            Debug-Output "ShellCode error: cannot get an error string."
  472.            goto ShellCodeError
  473.        endif
  474.        goto end
  475.     else
  476.        Shell $(UtilityInf), CardExistedDlg
  477.        ifint $($ShellCode) != $(!SHELL_CODE_OK)
  478.            Debug-Output "ShellCode error: cannot get an error string."
  479.            goto ShellCodeError
  480.        endif
  481.        ifstr(i) $($R1) != "OK"
  482.            goto end
  483.        endif
  484.        set OldVersionExisted = $(TRUE)
  485.     endif
  486.     endif
  487.  
  488.     Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) NO
  489.  
  490.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  491.     Goto ShellCodeError
  492.     Else-Ifstr(i) $($R0) == STATUS_FAILED
  493.     Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  494.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  495.         goto ShellCodeError
  496.     endif
  497.     set Error = $($R0)
  498.     Goto fatal
  499.     Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  500.     Goto successful
  501.     Endif
  502.  
  503.     Set SrcDir = $($R1)
  504.  
  505.     install "Install-Dll"
  506.  
  507.     Goto adapteroptions
  508.  
  509. ;-----------------------------------------------
  510. ; Configuration Section
  511. ;-----------------------------------------------
  512. ;
  513. ;   Get the current values of all the parameters
  514. ;
  515. configureadapter = +
  516.     Ifstr(i) $(KeyProduct) == $(KeyNull)
  517.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
  518.     Ifstr $(KeyProduct) == $(KeyNull)
  519.         set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  520.         Debug-Output "Cannot find component product key"
  521.         goto fatalregistry
  522.     Else
  523.         GetRegValue $(SoftwareKey), "ServiceName", ServiceNameList
  524.         set AdapterServiceName = *($(ServiceNameList),4)
  525.             set AdapterName = $(AdapterServiceName)
  526.             CloseRegKey $(SoftwareKey)
  527.         Endif
  528.     Endif
  529.     Debug-Output "INF: Shelling to FindService"
  530.     Shell $(UtilityInf) FindService, $(KeyProduct)
  531.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  532.     Debug-Output "INF: FindService shell failure"
  533.     Goto ShellCodeError
  534.     Endif
  535.     Ifstr(i) $($R0) != NO_ERROR
  536.     Debug-Output "INF: FindService Shell error: "$($R0)
  537.     Goto fatalregistry
  538.     endif
  539.     Set KeyParameters = $($R2)
  540.     CloseRegKey $($R1)
  541.     Ifstr $(KeyParameters) == $(KeyNull)
  542.     set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  543.     Debug-Output "Cannot find component service"
  544.     goto fatalregistry
  545.     endif
  546.     set OldVersionExisted = $(TRUE)
  547.     set ValueName = ""
  548.     set ValueData = ""
  549.     set ValueStr  = ""
  550.     set ValueList = {}
  551.     EnumRegValue $(KeyParameters) ValueList
  552.     ForListDo $(ValueList)
  553.     set ValueItem = $($)
  554.     set ValueName = *($(ValueItem),1)
  555.     set ValueData = *($(ValueItem),4)
  556.     ifstr(i) $(ValueName) == "IoBase"
  557.         set IOBaseAddrValue = $(ValueData)
  558.     else-ifstr(i) $(ValueName) == "BusNumber"
  559.         set BusNoValue = $(ValueData)
  560.     else-ifstr(i) $(ValueName) == "NetworkAddress"
  561.         set NetworkAddress = $(ValueData)
  562.     else-ifstr(i) $(ValueName) == "Speed"
  563.         set SpeedValue = $(ValueData)
  564.     else-ifstr(i) $(ValueName) == "Duplex"
  565.         set DuplexValue = $(ValueData)
  566.     endif
  567.     EndForListDo
  568.     ;
  569.     ; Combo-lists and radio-buttons use a special list of parameter-names
  570.     ; when dialogs are executed. The following section converts the actual
  571.     ; values into the corresponding names (indexes). If a value is undefined,
  572.     ; the first entry in the index-list is used.
  573.     ;
  574.     set IOBaseAddrIndex = *($(IOBaseAddrList), ~($(IOBaseAddrValues),$(IOBaseAddrValue)))
  575.     ifstr(i) $(IOBaseAddrIndex) == ""
  576.     set IOBaseAddrIndex = *($(IOBaseAddrList), 1)
  577.     endif
  578.     set BusNoIndex = *($(BusNoList), ~($(BusNoValues),$(BusNoValue)))
  579.     ifstr(i) $(BusNoIndex) == ""
  580.     set BusNoIndex = *($(BusNoList), 1)
  581.     endif
  582.     set SpeedIndex = *($(SpeedList), ~($(SpeedValues),$(SpeedValue)))
  583.     ifstr(i) $(SpeedIndex) == ""
  584.     set SpeedIndex = *($(SpeedList), 1)
  585.     endif
  586.     ifstr(i) $(DuplexValue) == "Auto"
  587.     set Rad2 = 4
  588.     else-ifstr(i) $(DuplexValue) == "Half"
  589.     set Rad2 = 5
  590.     else
  591.     set Rad2 = 6
  592.     endif
  593.     set RadioIn = {$(SpeedIndex), $(Rad2) }
  594.     ;
  595.     ; This section runs the dialogs. From the main dialog (adapter parameter
  596.     ; setup) it is possible to enter the PCMCIA dialog if requested. When
  597.     ; exiting the PCMCIA dialog the user is returned to the main dialog.
  598.     ;
  599. adapteroptions = +
  600.     set from = adapteroptions
  601.     ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
  602.     goto unattended
  603.     endif
  604.     set OldNetAddress = $(NetworkAddress)
  605.     ;
  606.     ; Load DLL containing dialogs and verification routines
  607.     ;
  608.     LoadLibrary "Olicom Ethernet Driver Disk" $(DialogDllName) DialogHandle
  609. adapteroptions1 = +
  610.     ;
  611.     ; Read main dialog setup and show dialog
  612.     ;
  613.     ifstr(i) $(Option) == "OCE3XM"
  614.     read-syms AdapterParameterDlg$(!STF_LANGUAGE)
  615.     else
  616.     read-syms AdapterMCAParameterDlg$(!STF_LANGUAGE)
  617.     endif
  618.     ui start "InputDlg"  $(DialogHandle)
  619.     ui pop 1
  620.     ;
  621.     ; Save new settings because this dialog might be called again.
  622.     ; If CANCEL was pressed these values will not be used
  623.     ;
  624.     ifstr(i) $(Option) == "OCE3XM"
  625.     set IOBaseAddrIndex = $(Combo1Out)
  626.     set BusNoIndex = $(Combo2Out)
  627.     endif
  628.     set SpeedIndex = *($(RadioOut),1)
  629.     IfContains "4" IN $(RadioOut)
  630.     set DuplexValue = "Auto"
  631.     else-IfContains "5" IN $(RadioOut)
  632.     set DuplexValue = "Half"
  633.     else-IfContains "6" IN $(RadioOut)
  634.     set DuplexValue = "Full"
  635.     endif
  636.     set NetworkAddress = *($(EditTextOut),1)
  637.  
  638.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  639.     ;
  640.     ; parameters have already been stored at this stage
  641.     ;
  642.     goto nextstep
  643.     else-ifstr(i) $(DLGEVENT) == "EXIT"
  644.         set CommonStatus = STATUS_USERCANCEL
  645.         Debug-Output "Action: exit. Bye."
  646.     FreeLibrary $(DialogHandle)
  647.         goto end
  648.     else
  649.         Debug-Output "Action: unknown: "$(DLGEVENT)
  650.     FreeLibrary $(DialogHandle)
  651.     goto end
  652.     endif
  653.  
  654. nextstep =+
  655.     ifstr $(NetworkAddress) != ""
  656.     ;
  657.     ; If network address has been entered then verify that it is a
  658.     ; valid address (not a multicast or broadcast address)
  659.     ;
  660.     set FLibraryErrCtl = 1
  661.     LibraryProcedure DlgResult $(DialogHandle) VerifyEthAddress $(NetworkAddress)
  662.     set FLibraryErrCtl = 0
  663.     ifstr $(DlgResult) != "STATUS_SUCCESS"
  664.         FreeLibrary $(DialogHandle)
  665.         set Error = $(DlgResult)
  666.         goto nonfatal
  667.     endif
  668.     endif
  669.     FreeLibrary $(DialogHandle)
  670.  
  671. unattended =+
  672.     ;
  673.     ; For MCA adapters we have utility functions to detect the presence
  674.     ; of these adapters based on the adapter ID register
  675.     ;
  676.     ifstr(i) $(Option) == "OCE3XMMC"
  677.     Shell $(UtilityInf), MCAFindBus, $(OC2335_1BYTE), $(OC2335_2BYTE)
  678.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  679.         goto ShellCodeError
  680.     endif
  681.     ifstr $($R0) != "NO_ERROR"
  682.         set Error = $($R0)
  683.         goto fatal
  684.     endif
  685.     ifstr(i) $($R1) == {}
  686.         set Error = $(CANNOT_FIND_ANY_CARD)
  687.         set CommonStatus = STATUS_USERCANCEL
  688.         set from = "end"
  689.         goto nonfatal
  690.     endif
  691.     set AdapterList = $($R1)
  692.     endif
  693.  
  694.     ifint $(OldVersionExisted) == $(TRUE)
  695.     ifstr(i) $(!NTN_InstallMode) == configure
  696.         goto writeparameters
  697.     endif
  698.     endif
  699.     StartWait
  700.     Ifint $(OldVersionExisted) != $(FALSE)
  701.     Goto installhardware
  702.     Endif
  703.     ifstr(i) $(!NTN_InstallMode) == "install"
  704.        Ifstr(i) $(DoCopy) == "YES"
  705.       Ifstr(i) $(SrcDir) == ""
  706.          read-syms AskSourceDlgText
  707.          Shell $(subroutineinf) DoAskSourceEx $(SrcDir) $(DlgText)
  708.          Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  709.         Goto ShellCodeError
  710.          Else-Ifstr(i) $($R0) == STATUS_FAILED
  711.          Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  712.          ifint $($ShellCode) != $(!SHELL_CODE_OK)
  713.              goto ShellCodeError
  714.          endif
  715.          set Error = $($R0)
  716.          Goto fatal
  717.          Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  718.          Goto successful
  719.          Endif
  720.          Set SrcDir = $($R1)
  721.       Endif
  722.        Endif
  723.        install "Install-Option"
  724.        ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  725.       Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  726.       ifint $($ShellCode) != $(!SHELL_CODE_OK)
  727.           goto ShellCodeError
  728.       endif
  729.       set Error = $($R0)
  730.       goto fatal
  731.        endif
  732.     endif
  733.     Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
  734.     $(ProductSoftwareName), +
  735.     $(ProductSoftwareName), +
  736.     $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
  737.         $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
  738.     $(NetEventDLL), ""
  739.     Set OEM_ABANDON_SOFTWARE = TRUE
  740.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  741.     Debug-Output "ShellCode error"
  742.     goto ShellCodeError
  743.     endif
  744.     set RegistryErrorIndex = $($R0)
  745.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  746.     EndWait
  747.     Debug-Output "OEMNADUB.INF: Registry error: add software components"
  748.     CloseRegKey $($R1)
  749.     CloseRegKey $($R2)
  750.     CloseRegKey $($R3)
  751.     CloseRegKey $($R4)
  752.     CloseRegKey $($R5)
  753.     goto fatalregistry
  754.     endif
  755.     set SoftProductKey    = $($R1)
  756.     Set SoftNetRuleKey = $($R2)
  757.     Set SoftServiceKey    = $($R3)
  758.     Set SoftParameterKey    = $($R4)
  759.     Set SoftLinkageKey    = $($R5)
  760.     set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  761.                {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  762.                {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  763.                {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
  764.                {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
  765.                {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
  766.                {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  767.     Shell  $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
  768.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  769.     Debug-Output "ShellCode error."
  770.     goto ShellCodeError
  771.     endif
  772.     set RegistryErrorIndex = $($R0)
  773.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  774.     EndWait
  775.     Debug-Output "Registry error: add value list."
  776.     CloseRegKey $(SoftProductKey)
  777.     CloseRegKey $(SoftNetRuleKey)
  778.     CloseRegKey $(SoftServiceKey)
  779.     CloseRegKey $(SoftParameterKey)
  780.     CloseRegKey $(SoftLinkageKey)
  781.     goto fatalregistry
  782.     endif
  783.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
  784.             {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
  785.             {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
  786.             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
  787.             {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
  788.             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  789.     Shell  $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
  790.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  791.     Debug-Output "ShellCode error."
  792.     goto ShellCodeError
  793.     endif
  794.     set RegistryErrorIndex = $($R0)
  795.     CloseRegKey $(SoftProductKey)
  796.     CloseRegKey $(SoftNetRuleKey)
  797.     CloseRegKey $(SoftServiceKey)
  798.     CloseRegKey $(SoftParameterKey)
  799.     CloseRegKey $(SoftLinkageKey)
  800.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  801.     EndWait
  802.     Debug-Output "Registry error: add value list."
  803.     goto fatalregistry
  804.     endif
  805. ;
  806. ;   Insert hardware component in registry
  807. ;
  808. installhardware =+
  809.  
  810.     ;
  811.     ; As the MCA hardware installation operates on a list of adapters of
  812.     ; adapters, this installation is handled separately.
  813.     ;
  814.     ifstr(i) $(Option) == "OCE3XMMC"
  815.     ForListDo $(AdapterList)
  816.         set BusNum = *($($),1)
  817.         set SlotNum = *($($),2)
  818.         Debug-Output $(BusNum)
  819.         Debug-Output $(SlotNum)
  820.         ;
  821.         ; See if this device is already present
  822.         ;
  823.         Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(BusNum), +
  824.         $(SlotNum), $(ProductHardwareDescription), $(ProductHardwareName)
  825.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  826.         goto ShellCodeError
  827.         endif
  828.         ifstr $($R0) != "NO_ERROR"
  829.         set Error = $($R0)
  830.         goto fatal
  831.         endif
  832.         ;
  833.         ; If device was not present then do the hardware installation
  834.         ;
  835.         ifstr(i) $($R1) != "YES"
  836.  
  837.         Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
  838.         ifint $($R4) != -1
  839.             Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  840.         endif
  841.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  842.             Debug-Output "Cannot add hardware component"
  843.             goto ShellCodeError
  844.         endif
  845.         set RegistryErrorIndex = $($R0)
  846.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  847.             EndWait
  848.             Debug-Output "Registry error: add hardware component"
  849.             CloseRegKey $($R1)
  850.             CloseRegKey $($R2)
  851.             CloseRegKey $($R3)
  852.             goto fatalregistry
  853.         endif
  854.         set KeyProduct = $($R1)
  855.         set KeyAdapterRules = $($R2)
  856.         set KeyParameters = $($R3)
  857.         set AdapterNumber = $($R4)
  858.  
  859.         set AdapterServiceName = $($R5)
  860.  
  861.         set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  862.                    {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(Option)Title)},+
  863.                    {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareDescription)},+
  864.                    {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  865.                    {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  866.                    {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  867.         Shell  $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList)
  868.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  869.             Debug-Output "ShellCode error"
  870.             goto ShellCodeError
  871.         endif
  872.         ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
  873.             Shell $(UtilityInf),AddDefaultNetCardParameters,$(KeyParameters)
  874.         endif
  875.                 CloseRegKey $(KeyProduct)
  876.  
  877.         Set KeyProduct = ""
  878.         set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  879.         set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  880.         set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
  881.                     {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  882.                     {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
  883.                     {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  884.         Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
  885.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  886.             Debug-Output "ShellCode error."
  887.             goto ShellCodeError
  888.         endif
  889.         CloseRegKey $(KeyAdapterRules)
  890.  
  891.         set SpeedValue = *($(SpeedValues), ~($(SpeedList),$(SpeedIndex)))
  892.         ifstr $(NetworkAddress) != ""
  893.            set NewValueList = >($(NewValueList),{NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(NetworkAddress)})
  894.         endif
  895.                 set NewValueList = {{BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNum)},+
  896.                 {BusType,$(NoTitle),$(!REG_VT_DWORD),3},+
  897.                 {McaPosId,$(NoTitle),$(!REG_VT_DWORD),$(NETCARD_ID)},+
  898.                 {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
  899.                 {SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(SlotNum)},+
  900.                 {Speed,$(NoTitle),$(!REG_VT_DWORD),$(SpeedValue)},+
  901.                 {Duplex,$(NoTitle),$(!REG_VT_SZ),$(DuplexValue)}}
  902.         Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
  903.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  904.             goto ShellCodeError
  905.         endif
  906.         CloseRegKey $(KeyParameters)
  907.         set RegistryErrorIndex = $($R0)
  908.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  909.             EndWait
  910.             Debug-Output "Registry error: add value list."
  911.             goto fatalregistry
  912.         endif
  913.  
  914.          endif
  915.     EndForListDo
  916.     else
  917.     ;
  918.     ; This section is the ISA hardware installation
  919.     ;
  920.     Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
  921.     ifint $($R4) != -1
  922.         Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  923.     endif
  924.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  925.         Debug-Output "Cannot add hardware component"
  926.         goto ShellCodeError
  927.     endif
  928.     set RegistryErrorIndex = $($R0)
  929.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  930.         EndWait
  931.         Debug-Output "Registry error: add hardware component"
  932.         CloseRegKey $($R1)
  933.         CloseRegKey $($R2)
  934.         CloseRegKey $($R3)
  935.         goto fatalregistry
  936.     endif
  937.     set KeyProduct = $($R1)
  938.     set KeyAdapterRules = $($R2)
  939.     set KeyParameters = $($R3)
  940.     set AdapterNumber = $($R4)
  941.  
  942.     set AdapterServiceName = $($R5)
  943.  
  944.     set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  945.                {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(Option)Title)},+
  946.                {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareDescription)},+
  947.                {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  948.                {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  949.                {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  950.     Shell  $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList)
  951.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  952.         Debug-Output "ShellCode error"
  953.         goto ShellCodeError
  954.     endif
  955.     CloseRegKey $(KeyProduct)
  956.     Set KeyProduct = ""
  957.     set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  958.     set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  959.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
  960.                 {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  961.                 {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
  962.                 {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  963.     Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
  964.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  965.         Debug-Output "ShellCode error."
  966.         goto ShellCodeError
  967.     endif
  968.     CloseRegKey $(KeyAdapterRules)
  969.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  970.         goto ShellCodeError
  971.     endif
  972.     set RegistryErrorIndex = $($R0)
  973.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  974.         EndWait
  975.         Debug-Output "Registry error: add value list."
  976.         CloseRegKey $(KeyParameters)
  977.         goto fatalregistry
  978.     endif
  979.     endif
  980.  
  981. ;
  982. ; Write Adapter Parameters to registry
  983. ;
  984. writeparameters = +
  985.  
  986.     set DoWrite = NO
  987.     ifstr(i) $(Option) == "OCE3XM"
  988.     ;
  989.     ; Prepare writing parameters for ISA adapter
  990.     ;
  991. ;        Shell $(UtilityInf), GetBusTypeNum
  992. ;        set BusTypeNum = $($R1)
  993. ;        ifint $($ShellCode) != $(!SHELL_CODE_OK)
  994. ;            Debug-Output "ShellCode error."
  995. ;            goto ShellCodeError
  996. ;        endif
  997.     Ifstr(i) $(KeyParameters) == $(KeyNull)
  998.         Debug-Output "*** KeyParameters is NULL at writeparameters"
  999.     Endif
  1000.     ;
  1001.     ; Convert selections from combo-lists and radio-buttons into actual
  1002.     ; parameter values
  1003.     ;
  1004.     set IOBaseAddrValue = *($(IOBaseAddrValues), ~($(IOBaseAddrList),$(IOBaseAddrIndex)))
  1005.     set BusNoValue = *($(BusNoValues), ~($(BusNoList),$(BusNoIndex)))
  1006.     set SpeedValue = *($(SpeedValues), ~($(SpeedList),$(SpeedIndex)))
  1007.  
  1008.     ;
  1009.     ; Set up parameter list for AddValueList routine
  1010.     ;
  1011.     set NewValueList = {{IoBase,$(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)},+
  1012.                 {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
  1013.                             {BusType,$(NoTitle),$(!REG_VT_DWORD),1},+
  1014.                 {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNoValue)},+
  1015.                 {Speed,$(NoTitle),$(!REG_VT_DWORD),$(SpeedValue)},+
  1016.                 {Duplex,$(NoTitle),$(!REG_VT_SZ),$(DuplexValue)}}
  1017.     set DoWrite = YES
  1018.     else-ifstr(i) $(!NTN_InstallMode) == "Configure"
  1019.     ;
  1020.     ; This section applies to MCA adapters only.
  1021.     ; (if we are running  the Install option these parameters has
  1022.     ; already been written).
  1023.     ;
  1024.  
  1025.     ;
  1026.     ; Convert selections from combo-lists and radio-buttons into actual
  1027.     ; parameter values
  1028.         ;
  1029.         set SpeedValue = *($(SpeedValues), ~($(SpeedList),$(SpeedIndex)))
  1030.  
  1031.     ;
  1032.     ; Set up parameter list for AddValueList routine
  1033.     ;
  1034.     set NewValueList = {{MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
  1035.                 {Speed,$(NoTitle),$(!REG_VT_DWORD),$(SpeedValue)},+
  1036.                 {Duplex,$(NoTitle),$(!REG_VT_SZ),$(DuplexValue)}}
  1037.     set DoWrite = YES
  1038.     endif
  1039.  
  1040.     ifstr(i) $(DoWrite) == YES
  1041.     ifstr $(NetworkAddress) != ""
  1042.        set NewValueList = >($(NewValueList),{NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(NetworkAddress)})
  1043.     endif
  1044.     ;
  1045.     ; Now update registry
  1046.     ;
  1047.     Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
  1048.     ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
  1049.         Shell $(UtilityInf),AddDefaultNetCardParameters,$(KeyParameters)
  1050.     endif
  1051.         ;
  1052.     ; If the network address has been deleted then also delete it from
  1053.     ; the registry.
  1054.     ;
  1055.     ifstr $(OldNetAddress) != ""
  1056.        ifstr $(NetworkAddress) == ""
  1057.           DeleteRegValue $(KeyParameters) NetworkAddress
  1058.        endif
  1059.     endif
  1060.  
  1061.     CloseRegKey $(KeyParameters)
  1062.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1063.         Debug-Output "ShellCode error."
  1064.         goto ShellCodeError
  1065.     endif
  1066.     set RegistryErrorIndex = $($R0)
  1067.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1068.         Debug-Output "Registry error: Add value list"
  1069.         goto fatalregistry
  1070.     endif
  1071.     endif
  1072.  
  1073.     EndWait
  1074.     goto successful
  1075.  
  1076. bindingadapter =+
  1077.     set Error = "Binding: Sorry, not yet implemented."
  1078.     goto fatal
  1079.  
  1080. ;-----------------------------------------------
  1081. ; Remove Adapter Section
  1082. ;-----------------------------------------------
  1083. ;
  1084. ;   Remove all adapter information from the registry
  1085. ;
  1086. removeadapter = +
  1087.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  1088.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  1089.             $(ProductSoftwareName)
  1090.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1091.             Debug-Output "ShellCode error"
  1092.             goto ShellCodeError
  1093.         endif
  1094.     set RegistryErrorIndex = $($R0)
  1095.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1096.             goto fatalregistry
  1097.         endif
  1098.     else
  1099.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  1100.             $(ProductSoftwareName), $(!NTN_RegBase)
  1101.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1102.             Debug-Output "ShellCode error"
  1103.             goto ShellCodeError
  1104.         endif
  1105.     set RegistryErrorIndex = $($R0)
  1106.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1107.             goto fatalregistry
  1108.         endif
  1109.     endif
  1110.     goto end
  1111.  
  1112. UpgradeSoftware = +
  1113.     ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  1114.         OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  1115.         Ifstr $(KeyProduct) != $(KeyNull)
  1116.             GetRegValue $(KeyProduct),"MajorVersion", VersionInfo
  1117.             set Version = *($(VersionInfo), 4)
  1118.             Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)
  1119.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1120.                 Debug-Output "ShellCode error"
  1121.                 goto ShellCodeError
  1122.             endif
  1123.             set !UG_Filename = $($R0)
  1124.             ifstr(i) $(!UG_Filename) != ""
  1125.                 install "Install-Update"
  1126.                 ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  1127.                     goto fatal
  1128.                 endif
  1129.             endif
  1130.             SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
  1131.             SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
  1132.             ifint $(Version) != $(ProductVersion)
  1133.             endif
  1134.             CloseRegKey $(KeyProduct)
  1135.         else
  1136.             goto fatalregistry
  1137.         endif
  1138.     else
  1139.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) +
  1140.               $(MAXIMUM_ALLOWED) NetworkCardKey
  1141.         Ifstr(i) $(NetworkCardKey) != $(KeyNull)
  1142.             GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
  1143.             set ServiceName = *($(ServiceNameInfo), 4)
  1144.             OpenRegKey $(NetworkCardKey) "" "NetRules" +
  1145.                 $(MAXIMUM_ALLOWED) NetRuleKey
  1146.             Ifstr(i) $(NetRuleKey) != $(KeyNull)
  1147.             else
  1148.                 CloseRegKey $(NetworkCardKey)
  1149.                 goto fatalregistry
  1150.             endif
  1151.             CloseRegKey $(NetRules)
  1152.             CloseRegKey $(NetworkCardKey)
  1153.         else
  1154.             goto fatalregistry
  1155.         endif
  1156.         OpenRegKey $(!REG_H_LOCAL) "" +
  1157.               $(!NTN_ServiceBase)"\"$(ServiceName) +
  1158.               $(MAXIMUM_ALLOWED) ServiceKey
  1159.         Ifstr(i) $(ServiceKey) != $(KeyNull)
  1160.             CloseRegKey $(ServiceKey)
  1161.         else
  1162.             goto fatalregistry
  1163.         endif
  1164.     endif
  1165.     goto end
  1166. successful = +
  1167.     goto end
  1168. abandon = +
  1169.     ForListDo $(OEM_ABANDON_OPTIONS)
  1170.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  1171.             $(ProductSoftwareName), $($)
  1172.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1173.             Debug-Output "ShellCode error"
  1174.             goto ShellCodeError
  1175.         endif
  1176.     set RegistryErrorIndex = $($R0)
  1177.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1178.             goto fatalregistry
  1179.         endif
  1180.     EndForListDo
  1181.     Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
  1182.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  1183.             $(ProductSoftwareName), FALSE
  1184.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1185.             Debug-Output "ShellCode error"
  1186.             goto ShellCodeError
  1187.         endif
  1188.     set RegistryErrorIndex = $($R0)
  1189.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1190.             goto fatalregistry
  1191.         endif
  1192.     endif
  1193.     goto end
  1194. warning = +
  1195.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  1196.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1197.         goto ShellCodeError
  1198.     endif
  1199.     ifstr(i) $($R1) == "OK"
  1200.         goto $(to)
  1201.     else-ifstr(i) $($R1) == "CANCEL"
  1202.         goto $(from)
  1203.     else
  1204.         goto "end"
  1205.     endif
  1206. nonfatalinfo = +
  1207.     Set Severity = STATUS
  1208.     Set CommonStatus = STATUS_USERCANCEL
  1209.     goto nonfatalmsg
  1210. nonfatal = +
  1211.     Set Severity = NONFATAL
  1212.     goto nonfatalmsg
  1213. nonfatalmsg = +
  1214.     ifstr(i) $(Error) == ""
  1215.         Set Severity = NONFATAL
  1216.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1217.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1218.             goto ShellCodeError
  1219.         endif
  1220.         set Error = $($R0)
  1221.     endif
  1222.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  1223.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1224.         goto ShellCodeError
  1225.     endif
  1226.     ifstr(i) $($R1) == "OK"
  1227.         goto $(from)
  1228.     else
  1229.         goto "end"
  1230.     endif
  1231. fatalregistry = +
  1232.     Shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING "Fatal Error"
  1233.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  1234.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1235.         goto ShellCodeError
  1236.     endif
  1237.     set Error = $($R0)
  1238.     goto fatal
  1239. fatal = +
  1240.     ifstr(i) $(Error) == ""
  1241.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1242.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1243.             goto ShellCodeError
  1244.         endif
  1245.         set Error = $($R0)
  1246.     endif
  1247.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  1248.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1249.         goto ShellCodeError
  1250.     endif
  1251.     goto setfailed
  1252. ShellCodeError = +
  1253.     set DlgType      = "MessageBox"
  1254.     set STF_MB_TITLE = "Error: "$(FunctionTitle)
  1255.     set STF_MB_TEXT  = "Shell Code Error"
  1256.     set STF_MB_TYPE  = 1
  1257.     set STF_MB_ICON  = 3
  1258.     set STF_MB_DEF   = 1
  1259.     ui start "Error Message"
  1260.     goto setfailed
  1261. setfailed = +
  1262.     set CommonStatus = STATUS_FAILED
  1263.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  1264.         set OEM_ABANDON_ON = FALSE
  1265.         goto abandon
  1266.     endif
  1267.     goto end
  1268. end = +
  1269.     goto term
  1270. term = +
  1271.     Return $(CommonStatus)
  1272.  
  1273. [Install-Option]
  1274.     set STF_VITAL = ""
  1275.     ifstr(i) $(AddCopy) == "YES"
  1276.         AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1277.     endif
  1278.     Debug-Output "OEMSETNT.INF: [Install-Option] DoCopy = "$(DoCopy)
  1279.     ifstr(i) $(DoCopy) == "YES"
  1280.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1281.        CopyFilesInCopyList
  1282.     endif
  1283.     Exit
  1284.  
  1285. [Install-Update]
  1286.    set STF_VITAL        = ""
  1287.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  1288.    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1289.    AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1290.    AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1291.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1292.    CopyFilesInCopyList
  1293.    exit
  1294.  
  1295. [Install-Dll]
  1296.    set STF_VITAL     = ""
  1297.    ;ifstr(i) $(AddCopy) == "YES"
  1298.       AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1299.    ;endif
  1300.     ; ifstr(i) $(DoCopy) == "YES"
  1301.       set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1302.       CopyFilesInCopyList
  1303.    ;endif
  1304.    exit
  1305.  
  1306. [Source Media Descriptions]
  1307. ;   1  = "Olicom Ethernet Driver Disk"
  1308.     1  = "Windows NT DRVLIB"
  1309.  
  1310. [Signature]
  1311.     FileType = MICROSOFT_DRVLIB_FILE
  1312.  
  1313. [GetSignature]
  1314.     read-syms Signature
  1315.     return $(FileType)
  1316.  
  1317. [ProductType]
  1318. STF_PRODUCT  = Winnt
  1319. STF_PLATFORM = I386
  1320.  
  1321. [Files-Inf]
  1322. 1, oemsetup.inf, SIZE=999,       RENAME=$(!UG_Filename)
  1323.  
  1324. [Files-OCE3XM]
  1325. 1, OCE3XM.SYS,     SIZE=999
  1326.  
  1327. [Files-OCE3XMMC]
  1328. 1, OCE3XM.SYS,   SIZE=999
  1329.  
  1330. [Files-Dll]
  1331. 1, oce3xm.dll,     SIZE=999
  1332. 1, oce3xm.hlp,     SIZE=999
  1333.  
  1334. [Files-dummy]
  1335.